"""集合"""""

'''定义'''
# 集合是一个无序且没有重复元素的序列，表示方式是{ele,},python中是set表示集合
# 注意事项：集合不能存储可变数据类型，如果存储了就会引发ValueError
set1 = {1, 1, 1, 1, 2}
# print(type(set1), set1)  # <class 'set'> {1, 2}

'''特性'''
# 无序，没有重复元素，可变的

'''常用方法'''
# 1、add(obj) 添加元素
set1.add(3)
# print(set1)  # {1, 2, 3}
# 2、pop() 随机删除元素
set1.pop()
# print(set1)  # {2, 3}
# 3、remove(ele) 指定元素来删除
set1.remove(3)
# print(set1)  # {2}
# 4、issubset(set) 判断 集合1 是 set 子集，返回的布尔值
set2 = {1, 2, 3, 4}
set3 = {3, }
# print(set3.issubset(set2))  # True

'''集合之间的运算'''
set4 = set('sdasdedwqdqw2')
print(set4)  # {'s', 'e', 'd', 'w', 'a', 'q'}
set5 = {'s','e','d',1}

# 取交集
print(set4 & set5) # {'d', 'e', 's'}

# 取并集
print(set4 | set5) # {1, 'a', 'q', 's', 'd', 'e', 'w'}

# 取差集
# 取set5的差集 谁在前面就取与另一个数相减之后前面数独有的值
print(set5 - set4) # {1}

# 取对称差集  互相都没有的
print(set4^set5) # {'w', 1, '2', 'q', 'a'}

# 取补集 前提是另一个集合的子集
set6 = {1,2,3,4}
set7 = {1,2}
print(set6 - set7) # {3, 4}